<?php
declare(strict_types=1);

namespace App\Common\Extend\Guard;

interface ModelInterface
{
    /**
     * 获取用户ID
     * @return int|string
     */
    public function getId(): int|string;

    /**
     * 获取用户信息
     * @return array
     */
    public function userInfo(): array;


    /**
     * 生成密码
     * @param string $password 密码
     * @param string $secretKey 加密串
     * @return string
     */
    public function generatePassword(string $password, string $secretKey = ''): string;


    /**
     * 生产安全密钥
     * @return string
     */
    public function generateSecretKey(): string;


    /**
     * 验证密码
     * @param string $password 密码
     * @param string $passwordHas 密码哈希
     * @param string $secretKey 加密串
     * @return bool
     */
    public function verifyPassword(string $password, string $passwordHas, string $secretKey = ''): bool;
}